#ifndef CLASS_H
#define CLASS_H

#include <QString>

class User {
public:
    // 无参构造函数
    User();

    // 有参构造函数
    User(int id, const QString& username, const QString& password, const QString& gender,
         int age, const QString& phone, const QString& state, const QString& note);

    // 拷贝构造函数
    User(const User& other);

    // 析构函数
    ~User();

    // get 和 set 函数
    int getId() const;
    void setId(int newId);

    QString getUsername() const;
    void setUsername(const QString& newUsername);

    QString getPassword() const;
    void setPassword(const QString& newPassword);

    QString getGender() const;
    void setGender(const QString& newGender);

    int getAge() const;
    void setAge(int newAge);

    QString getPhone() const;
    void setPhone(const QString& newPhone);

    QString getState() const;
    void setState(const QString& newState);

    QString getNote() const;
    void setNote(const QString& newNote);

    // toQString 方法：将 User 对象转换为 QString
    QString toQString() const;

private:
    int id;
    QString username;
    QString password;
    QString gender;
    int age;
    QString phone;
    QString state;
    QString note;
};

class Friend {
public:
    Friend();
    Friend(int id, const QString& username1, const QString& username2);
    Friend(const Friend& other);

    int getId() const;
    void setId(int newId);

    QString getUsername1() const;
    void setUsername1(const QString& newUsername1);

    QString getUsername2() const;
    void setUsername2(const QString& newUsername2);

private:
    int id;
    QString username1;
    QString username2;
};

class Group {
public:
    Group();
    Group(int id, const QString& username1, const QString& groupName, const QString& username2);
    Group(const Group& other);

    int getId() const;
    void setId(int newId);

    QString getUsername1() const;
    void setUsername1(const QString& newUsername1);

    QString getGroupName() const;
    void setGroupName(const QString& newGroupName);

    QString getUsername2() const;
    void setUsername2(const QString& newUsername2);

private:
    int id;
    QString username1;
    QString groupName;
    QString username2;
};

#endif // CLASS_H
